package com.itheima.home_work.student_infos;

import java.util.ArrayList;
import java.util.Scanner;
import java.util.TreeMap;

public class Test {
    public static void main(String[] args) {
        /**
         * 1、键盘录入3个学生信息,存储到学生对象(姓名,年龄)，然后添加到ArrayList集合中；
         *
         * 2、键盘录入3个居住地信息,添加到另一个集合ArrayList；
         *
         * 3、把两个list集合中的数据收集到同一个map集合中,键是学生对对象,值是居住地址；
         *
         * 4、要求map集合中不能存在相同的学生信息.并按照学生年龄降序排列；
         *
         * 5、使用Stream流输出集合中所有姓张的人信息；
         */

        // 1、键盘录入3个学生信息,存储到学生对象(姓名,年龄)，然后添加到ArrayList集合中；
        ArrayList<Student> students = new ArrayList<>();

        Scanner sc = new Scanner(System.in);
        for (int i = 1; i < 4; i++) {
            System.out.println("请输入第 "+i+" 个学生姓名: ");
            String name = sc.next();
            System.out.println("请输入第 "+i+" 个学生年龄: ");
            int age = sc.nextInt();
            students.add(new Student(name, age));
        }

        ArrayList<String> addressList = new ArrayList<>();

        // 2、键盘录入3个居住地信息,添加到另一个集合ArrayList；
        for (int j = 1; j < 4; j++) {
            System.out.println("请输入第 "+j+" 个学生居住地: ");
            String address = sc.next();
            addressList.add(address);
        }

        // 3、把两个list集合中的数据收集到同一个map集合中,键是学生对对象,值是居住地址；
        TreeMap<Student, String> studentInfo = new TreeMap<>((stu1, stu2) -> stu2.getAge() - stu1.getAge());
        for (int i = 0; i < students.size(); i++) {
            studentInfo.put(students.get(i), addressList.get(i));
        }

        // 4、要求map集合中不能存在相同的学生信息.并按照学生年龄降序排列；

        // 5、使用Stream流输出集合中所有姓张的人信息；
        studentInfo.entrySet().stream()
                .forEach(entry -> System.out.println("student: " + entry.getKey() + " --> " + entry.getValue()));
    }
}
